package ar.uba.fi.tonyvaliente.documents;

import java.util.Iterator;

/**
 * Consulta generica sobre el indice invertido de documentos
 * @author dmorello
 */
public abstract class DocumentQuery implements Query {
	
	protected DocumentQueryFactory factory;
	
	protected DocumentQuery(DocumentQueryFactory factory) {
		this.factory = factory;
	}

	@Override
	public abstract Iterator<Integer> getResultIterator();
	
}

abstract class DocumentQueryResultIterator implements Iterator<Integer> {
	
	// Cantidad total de documentos en el indice
	protected int totalDocumentos;
	
	// Indice sobre el cual realizar las busquedas
	protected DocumentIndex index;

	protected DocumentQueryResultIterator(int totalDocumentos, DocumentIndex index) {
		this.totalDocumentos = totalDocumentos;
		this.index = index;
	}
	
	public final void remove() {
		throw new UnsupportedOperationException("No se permite el borrado "
			+ "de elementos obtenidos mediante un ResultIterator");
	}
}
